package org.jeecg.modules.dock.service;

import org.jeecg.modules.dock.entity.mds.MdsBaseResponseVO;
import org.jeecg.modules.dock.entity.mds.request.*;

import java.util.List;

/**
 * mds业务对接服务
 *
 * @author zhoutong
 */
public interface MdsDockingRepeaterService {

    /**
     * 横剪叫料
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsTransverseShearingIsCalledMaterial(MDSTransverseShearingIsCalledMaterialRequestVO vo);

    /**
     * 横剪退料
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsCrossShearingToWithdrawMaterial(MDSCrossShearingToWithdrawMaterialRequestVO vo);

    /**
     * 横剪叫料板
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsTransverseShearIsCalledMaterialPlate(MDSTransverseShearIsCalledMaterialPlateRequestVO vo);

    /**
     * 横剪叫废料箱
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsTheTransverseShearIsCalledAScrapBin(MDSTheTransverseShearIsCalledAScrapBinRequestVO vo);

    /**
     * 横剪退废料箱
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsCrossCutTheScrapBin(MDSCrossCutTheScrapBinRequestVO vo);

    /**
     * 横剪入库
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsCrossCutIntoStorage(MDSCrossCutIntoStorageRequestVO vo);

    /**
     * 叠片叫料
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsLaminationIsCalledMaterial(MDSLaminationIsCalledMaterialRequestVO vo);

    /**
     * 叠片退料
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsLaminationAndRefeeding(MDSLaminationAndRefeedingRequestVO vo);

    /**
     * 叠片退料板
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO mdsLaminatedRefeedingPlate(MDSLaminatedRefeedingPlateRequestVO vo);

    /**
     * 条料调拨入库
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO materialTransferAndWarehousing(MaterialTransferAndWarehousingRequestVO vo);

    /**
     * 条料库叫料架
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO malledMaterialRack(MalledMaterialRackRequestVO vo);

    /**
     * 条料调拨出库
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO materialTransferAndOutbound(MaterialTransferAndOutboundRequestVO vo);

    /**
     * 强制完成
     *
     * @param vo
     * @return
     */
    MdsBaseResponseVO forceComplete(ForceCompleteRequestVO vo);

    /**
     * 配送
     *
     * @param vo
     */
    MdsBaseResponseVO delivery(MDSDeliveryRequestVO vo);

    /**
     * 退空料架
     *
     * @param vo
     */
    MdsBaseResponseVO emptyMaterialRack(EmptyMaterialRackRequestVO vo);

    List<MdsRepertoryVO> repertory();

}
